System and method of wireless proximity awareness

ABSTRACT

The present application provides a system for proximity awareness for mobile data communication on an electronic communication device comprising a client application on an electronic communication device communicating across a wireless network, and an awareness server that includes a plurality of server objects that monitor multiple devices on a wireless communication network. In addition, the client application on the electronic communication device comprises a plurality of software objects. The client application periodically broadcasts the current wireless tower that the device is communicating on to the awareness server. The awareness server tracks the location of other Tower IDs of other users in the individual&#39;s contact list. If there is a match in Tower IDs, an alert is sent to both users that they are in proximity to each other.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.11/371,386, filed on Mar. 9, 2006 now U.S. Pat. No. 7,266,395, which isa continuation of U. S. patent application Ser. No. 10/696,975, filed onOct. 30, 2003 now U.S. Pat. No. 7,035,618.

BACKGROUND

1. Technical Field

The present invention relates generally to the field of wirelessproximity awareness using a communication device.

2. Description of the Related Art

Wireless proximity presence notification refers to wireless alerts sentto the wireless devices of other individuals, friends or contacts thatare within proximity, relative to the wireless network communicationtowers. A wireless device is an electronic communication device thatenables two or more individuals to communicate using voice or data.Examples of wireless devices include pagers, cellular phones, cellularsmart-phones, wireless handheld organizers, and wirelessly enablednotebook computers.

Although many wireless devices enable remote, ubiquitous communicationacross large boundaries, there is also value associated withface-to-face communication, especially among contacts that keep in touchusing wireless devices. Users of wireless device often travel withoutknowing that another user, such as a friend or business contact isnearby. If they are made aware of their proximity, both users may beable to get together for a meeting to conduct business or as a socialgathering.

Known wireless communication devices do not provide a method forpresence notification based on proximity; this invention seeks toaccomplish this shortcoming.

SUMMARY

The details of a disclosed herein may enable the development of a systemand method of wireless proximity awareness in a communication device. Itis an object of the present application that a system and method ofwireless proximity awareness be defined.

The present application, a system for proximity awareness for mobiledata communication on an electronic communication device comprising of aclient application on an electronic communication device communicatingacross a wireless network, and an awareness server consisting of aplurality of server objects that monitors multiple devices on a wirelesscommunication network. In addition, the client application on theelectronic communication device comprises of a plurality of softwareobjects.

Other aspects and features of the present application will becomeapparent to those ordinarily skilled in the art upon review of thefollowing description of specific embodiments of the present inventionin conjunction with the accompanying figures.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the present application will now be described, by way ofexample only, with reference to the attached figures, wherein:

FIG. 1 is a block diagram illustrating a system overview of the wirelesscommunication system;

FIG. 2 is a block diagram illustrating a mobile electronic deviceembodying a wireless proximity awareness system and method;

FIG. 3 is a flow diagram illustrating a notification process;

FIG. 4 is a block diagram illustrating the method of communication atthe awareness server; and

FIG. 5 is a block diagram illustrating the method of communication atthe client application on the communication device.

Like reference numerals are used throughout the figures to denotesimilar elements and features.

DETAILED DESCRIPTION OF THE DRAWINGS

The present invention relates to a system and method of wirelessproximity awareness for wireless devices. This system permits users tobe alerted of other wireless device users that are in proximity of theuser's location. When two users on a pre-defined list of contacts (orBuddy-list) are near each other, an alert is sent from the proximityawareness server to both users. Both users can then use email, instantmessage or voice communication to communicate and set up a face-to-facemeeting, for example. Benefits of proximity awareness include increasedproductivity during downtime, increased business developmentopportunity, and increased personal satisfaction being able to meetcontacts.

The system of interest comprises a client application on a wirelessdevice communicating with an awareness server located securely behind anorganization's unsolicited network traffic controller. The unsolicitednetwork traffic controller comprises of a firewall or a secure virtualprivate network (VPN) connection.

The proximity awareness server interacts with devices that communicateeither on the same wireless network or on different, evennon-compatible, wireless networks. The awareness server connectsmultiple users on multiple networks to enable seamless communication andnotification. The awareness server is hosted either at a wirelesscarrier, a wireless application service provider or securely behind thefirewall of the individuals' enterprise. Regardless of the location ofwhere the awareness server is hosted, the awareness server is capable ofcommunicating with users from multiple networks and/or differentcorporations.

Referring to the drawings, FIG. 1 is a block diagram illustrating asystem overview of the wireless communication system. The systemencompasses the wireless devices 110, 112, each running a clientapplication, the wireless network tower 120, the awareness server 150,the Internet 130 and the firewall 140. The client application refers toa software application on the wireless device that includes monitoringof the current location, sending location updates to the wirelessnetwork 120 and receiving incoming proximity alerts from the wirelessnetwork 120.

The communication path between each wireless device and the awarenessserver 150 includes the air link from wireless device 110, 112 to thewireless network tower 120, across the Internet 130 to the awarenessserver 130 located securely behind an organization's firewall 140. Thereturn path of communication will be the same route, but in the oppositedirection.

The wireless device 110, 112 constantly listens to the wireless networktower 120 that it is connected to, as well as neighbouring towers in itsproximity, and stores the device identifier and tower identifier inmemory. The client application on each wireless device contains softwareobjects that handle the processing of incoming data, monitoring the listof network towers, sending out updates to the awareness server 150 andtriggering alerts once a proximity and contact match is found.

The client application enables wireless devices on the same wirelessnetwork, as well as, devices from other wireless networks tocommunicate. The ability to communicate on different networks isaccomplished through an awareness server interface. The awareness server150 has the ability to connect users from either the same or multiplenetworks together to communicate.

The awareness server 150 monitors a list of wireless devices and sendsout proximity alerts. This server is hosted either by a wireless networkcarrier, by a wireless application service provider, or securely behinda company's firewall 140, as shown in FIG. 1. The wireless network tower120 is a network base station or radio tower that both wireless devicesare currently communicating on.

FIG. 2 is a block diagram illustrating a mobile electronic deviceembodying a wireless proximity awareness system and method. Mobileelectronic device 200 is preferably a two-way wireless electroniccommunication device having at least voice and data communicationcapabilities. Mobile electronic device 200 preferably has the capabilityto communicate with other computer systems on the Internet. Depending onthe exact functionality provided, the wireless device may be referred toas a data messaging device, a two-way pager, a wireless e-mail device, acellular telephone with data messaging capabilities, a wireless Internetappliance, or a data communication device, as examples.

Where mobile electronic device 200 is enabled for two-way communication,it will incorporate a communication antenna subsystem 211, includingboth a receiver 212 and a transmitter 214, as well as associatedcomponents such as one or more, preferably embedded or internal, antennaelements 216 and 218, local oscillators (LOs) 213, and a processingmodule such as a digital signal processor (DSP) 220. As will be apparentto those skilled in the field of communications, the particular designof the communication subsystem 211 will be dependent upon thecommunication network in which the device is intended to operate.

Mobile electronic device 200 includes a microprocessor 238 that controlsthe overall operation of the device. Communication functions, includingat least data and voice communications, are performed throughcommunication subsystem 211. Microprocessor 238 also interacts withfurther device subsystems such as the display 222, flash memory 224,random access memory (RAM) 226, auxiliary input/output (I/O) subsystems228, serial port 230, keyboard 232, speaker 234, microphone 236, ashort-range communications subsystem 240 and any other device subsystemsgenerally designated as 242.

The other device subsystems 242 of interest include software objects ofthe client application responsible for handling proximity awareness andnotification on the wireless device. These software objects will befurther elaborated in the proceeding figures.

Mobile electronic device 200 also includes other components such asprograms 258, device states 250, an address book 252, a PIM application254, other applications 256, configuration information 251, and otherinformation 253 relevant to the operation of the device. Theaforementioned components in this paragraph, although available on thedevice and outlined in FIG. 1, are not critical to the functionality ofthis invention.

FIG. 3 is a flow diagram illustrating a notification process. The clientapplication on the wireless device 110 performs a location update oflocation information including a Device ID and a Tower ID, at step 305.The Tower ID is a unique identifier of a wireless tower and representsthe physical location of the tower. The Device ID is a unique identifierof a wireless device; it may be the serial number, the phone number orsome other identifier. The location information is reported to thewireless network tower 120, at step 310.

In the system of FIG. 1, for example, this data will be sent from theclient application across the Internet 130 to the awareness server 150.The awareness server 150 receives the location info at step 315 andprocesses the information. Since this location information is sentacross a public communication path, the data is securely encrypted fromthe client application 110 to the awareness server 150 such that nolocation data is available in the clear at any point, other than at theawareness server 150, behind the intended organization's corporatefirewall.

Once the location information (Tower IDs and Device IDs) is received atthe awareness server 150, the information is inputted into anapplication where a listener object monitors the ID lists at step 320.The awareness server 150 contains three global ID lists of interest—aDevice ID list, a Tower ID list and a User Buddy list. The Device IDlist contains information on all devices registered on the system,including the Device lDs, the unique identifiers of each device. TheTower ID list is a list of all network towers that the awareness servercan listen to. This Tower list contains network towers from differentnetwork carriers, associated with each wireless device. The User Buddylist contains a list of user profile of all users and a their contactsor buddies.

There is logic in the awareness server 150 that performs a comparison;if a match of two devices on the same contact list and on the samenetwork tower is detected at step 330, an awareness notification is sentto both users at step 340 to indicate that they are in proximity to eachother. It is up to the users at this point to decide whether they wouldlike to communicate or physically meet considering their physicalproximity. If the logic on the awareness server 150 does not detect amatch, the server will continue to monitor the ID lists at step 320.

Location information (Tower ID and Device ID) is sent to the awarenessserver 150 at a predetermined time interval if the wireless device islocked onto one tower. If the device is not locked onto a tower,location information is sent immediately to the awareness server 150. Anexample of this includes the scenario where a wireless device switchesto another tower.

In addition to broadcasting the Tower ID that the wireless device iscurrently connected to, the wireless device also sends a list of allneighbouring Tower IDs. This Tower ID list includes network towers fromthe device's own network carrier, as well as other neighbouring carriersusing the same network technology (e.g., CDMA, GSM, etc). For example, adevice broadcasts location information to the awareness server. It sendsits Device ID, Tower ID AA from GSM network carrier X that it iscurrently communicating on, and neighbouring Tower IDs AB, AC and ADthat are in proximity Tower ID AB is on the same network carrier X, butTower IDs AC and AD are on GSM network carrier Y. This device connectsonly to network towers AB and AC from its own carrier; it can hearnetwork towers AC and AD from a neighbouring network, but the devicecannot connect to these towers.

One reason for reporting neighbouring Tower IDs (network towers) is toassist in monitoring of the Buddy list. The monitoring object 320includes intelligent logic to resolve contacts that are in proximity ondifferent network towers of the same network or on different networks.For example, if there are two contacts in San Francisco, one on a GPRSnetwork and the other on a CDMA network and both users have the clientapplication on their devices, the awareness server 150 will resolve aproximity match and send an awareness notification to both devices.

The wireless proximity logic does not require additional hardware suchas Global Positioning System (GPS) peripheral to report locationupdates. The mapping of wireless proximity is conducted using acomparison of the list of wireless network towers. The awareness server150 monitors a Buddy list, a Device list and a Tower list. If there is amatch between buddies (contacts) on a user's Buddy list, with a specificdevice and tower, the awareness server will send out a notification toalert both contacts of their proximity.

FIG. 4 is a block diagram illustrating the method of communication atthe awareness server. The functionality of the awareness server issupported a number of server objects: including the server listenerobject 410, a monitor object 430, an updater object 420, a matchingobject 440 and an alerter object 450. The server listener object 410listens to incoming location information from wireless devices and feedsthe input to the monitor object 430. The monitor object 430 constantlymonitors a list of network towers (Tower ID) and wireless devices(Device ID) associated with the user's Buddy-list. This list is updatedthrough the updater object 420 if a new contact is added, removed orblocked from a user's Buddy-list.

A matching algorithm 440 performs a comparison of devices and networktowers. If there is a match between multiple devices on the same networktower, the alerter object 450 is triggered to send out an awarenessnotification 340 to the wireless device. If there is no match, thematching algorithm will return to the monitor object 430 to continuallymonitor incoming requests from the Server Listener object 410. Userpreference is taken into consideration when alerts are sent out. Forexample, an awareness notification 340 is not sent out to individuals onthe Buddy-list that are deemed blocked, or in an ignore or “Do NotDisturb” mode, even if there is a proximity match.

In certain embodiments of the awareness server 150, the matchingalgorithm 440 may include a time-based logic, capable of performing afuzzy logic match, based on a configurable level of granularity. Thefuzzy logic match is used to determine proximity of contacts in a Buddylist. For example, a user's contact in his Buddy list is 60 minutes awaycommunicating on Tower A, and the user can hear Tower A. The fuzzy logicof the matching algorithm 440 generates a “proximity hit” of within anhour for that buddy and reports this detail to the user.

FIG. 5 is a block diagram illustrating the method of communication atthe client application on the communication device. The clientapplication comprises a receiver 510, client listener 520, alerter 530,timer 540, updater 550 and transmitter 560 object. The receiver object510 is associated with the RF receiver hardware of the wireless device;its purpose is to receive awareness notifications 340 or network towerlocation updates (Tower ID).

Once data is received on the receiver 510, it is sent to the clientlistener object 520 for processing. Based on the type of data received,the client listener object 520 will trigger the alerter object 530 togenerate an audible or visual alert if the incoming data is an awarenessnotification 340 or pass the data onto the Updater object 550 if theincoming data is a Tower ID. The Updater object 550 will package theTower ID info and combine it with the Device ID, the device uniqueidentifier, and submit this info to the Transmitter object 560. TheTransmitter object controls the RF Transmitter hardware on the device tosend the update data back to the Awareness Server 150 as a statusupdate. In addition to receiving information from the client listenerobject 520, the updater object 550 receives periodic requests to updatethe device status from the timer object 560.

This design has a number of strengths which include the following:

-   -   A simple security algorithm (e.g., Public Key Cryptography)        could be devised to ensure secure location sharing the list of        contacts.    -   Proximity data passes over a wireless data channel, thereby        ensuring that only two parties have access to that location        data, and that a carrier could not resell the location data.    -   There is no geographic or longitude/latitude coordinate mappings        required; the devices and awareness server determine if they can        hear the same radio towers to initiate communication. No        additional hardware is required for coordinate mapping data.    -   Awareness notification could be integrated into other        applications on the wireless device. For example, a phone,        e-mail or SMS alert can be triggered when a contact is nearby.

The client application and awareness server 150 may include additionalfeatures. One feature is to incorporate filters to determine userpreference. Filters may be used to turn on/off notification, toaccept/block users asking for presence tracking, and to place the userin different modes such as “Do Not Disturb”, “Available”, “In a Meeting”and “Offline” mode.

An additional feature may be to extend the awareness server toincorporate connectivity with instant messaging systems, for example,ICQ, AIM, MSN, Yahoo, and enable proximity awareness with contacts inthese systems. A further feature may be to incorporate the functionalityof the components of the awareness server 150 into the clientapplication, thereby allowing communication between multiple userswithout the requirement of a server component.

The above-described embodiments of the present application are intendedto be examples only. Those of skill in the art may effect alterations,modifications and variations to the particular embodiments withoutdeparting from the scope of the application.

1. A method comprising: monitoring a location of each of a plurality ofmobile communication devices; performing a comparison of the location ofeach of the plurality of mobile communication devices to the location ofeach other mobile communication device in the plurality of mobilecommunication devices, to determine which of the mobile communicationdevices are near each other, the location of each mobile communicationdevice being based on a cellular network tower each respectivecommunication device is communicating through; determining, through thecomparison, that a first mobile communication device is near a secondmobile communication device based on both mobile communication devicescommunicating through a same cellular network tower; and triggered bythe determination that the first and second mobile communication devicesare near each other, transmitting a first notification to the firstmobile communication device indicating the second mobile communicationdevice is nearby.
 2. The method of claim 1 wherein the transmittingincludes transmitting a second notification to the second mobilecommunication device indicating the first mobile communication device isnearby.
 3. The method of claim 1 wherein the first notificationindicates a distance between the first and second mobile communicationdevices in terms of an amount of time.
 4. The method of claim 1 whereinthe comparison is between mobile communication devices of a common Buddylist.
 5. The method of claim 1 wherein the monitoring, performing,determining and transmitting steps are performed by an awareness server.6. The method of claim 1 wherein the monitoring includes receivingcommunications, from the each of the plurality of mobile communicationdevices, indicating which cellular network tower each of the pluralityof mobile communication devices is respectively communicating through.7. An awareness server configured to communicate with a plurality ofwireless devices, comprising: a listener object configured to monitor alocation of each of a plurality of mobile communication devices; amatching object coupled to the listener object, the matching objectconfigured to perform a comparison of the location of each of theplurality of mobile communication devices to the location of each othermobile communication device in the plurality of mobile communicationdevices, to determine which of the mobile communication devices are neareach other, the location of each mobile communication device being basedon a cellular network tower each respective communication device iscommunicating through, and the matching object being further configuredto determine, through the comparison, that a first mobile communicationdevice is near a second mobile communication device based on both mobilecommunication devices communicating through a same cellular networktower; and an alerter object coupled to the matching object, the alerterobject configured to, triggered by the determination that the first andsecond mobile communication devices are near each other, transmit afirst notification to the first mobile communication device indicatingthe second mobile communication device is nearby.
 8. The awarenessserver of claim 7 wherein the alerter object is further configured totransmit a second notification to the second mobile communication deviceindicating the first mobile communication device is nearby.
 9. Theawareness server of claim 7 wherein the first notification indicates adistance between the first and second mobile communication devices interms of an amount of time.
 10. The awareness server of claim 7 whereinthe comparison performed by the matching object is between mobilecommunication devices of a common Buddy list.
 11. The awareness serverof claim 7 wherein the monitoring by the listening object includesreceiving communications, from the each of the plurality of mobilecommunication devices, indicating which cellular network tower each ofthe plurality of mobile communication devices is respectivelycommunicating through.